package ricky.loader
{

	/**
	 * 加载队列
	 */
	public class QueueWait
	{
		public function QueueWait()
		{
			_queue=new Array();
		}
		
		/**
		 * 是否在运行中
		 */
		public function get isRuning():Boolean
		{
			return _isRuning;
		}

		public function set isRuning(value:Boolean):void
		{
			_isRuning = value;
		}

		/**
		 * 加入请求队列
		 */
		public function add(req:Request):void
		{
			_queue.push(req);
			_queue.sortOn("priority",Array.DESCENDING | Array.NUMERIC);
		}
		
		/**
		 * 设置指定索引位置的值
		 */
		public function setValue(index:int,value:Request):Boolean
		{
			if(this._queue.length<index)
			{
				_queue[index]=value;
				return true;
			}
			return false;
		}
		
		/**
		 * 取出第一个
		 */
		public function first():Request
		{
			if(this.isRuning==false)
				return null;
			
			if(_queue.length>0)
				return _queue.shift();
			else
				return null;
		}	
			
			
		////////////////////////////////////////
		//属性
		////////////////////////////////////////
		
		/**
		 * 队列长度
		 */
		public function size():int
		{
			return _queue.length;
		}
		
		private var _queue:Array;//加载的队列
		
		private var _isRuning:Boolean=true;
	}
}